package main

import (
	"fmt"
	"strconv"

	"gin-c/app"
	"gin-c/app/middleware"
	"gin-c/frame"

	"github.com/gin-gonic/gin"
)

func main() {

	// 设置运行环境
	if frame.Config.Server.Env == "dev" {
		gin.SetMode(gin.DebugMode)
	} else {
		gin.SetMode(gin.ReleaseMode)
	}
	// 创建路由
	router := gin.New()
	// 日志
	router.Use(frame.SetLogs())
	// 错误处理
	router.Use(middleware.ErrorHandler())
	// 跨域配置
	router.Use(middleware.CrossOrigin())
	// 静态文件
	router.Static("/static", "./static")
	// 加载路由
	app.LoadRouter(router)

	ip, e := frame.GetLocalIP()
	if e != nil {
		fmt.Printf("服务器即将启动:\n本地地址：http://localhost:%v\n", frame.Config.Server.Port)
	} else {
		fmt.Printf("服务器即将启动:\n本地地址：http://localhost:%v\n网络地址：http://%v:%v\n", frame.Config.Server.Port, ip, frame.Config.Server.Port)
	}

	err := router.Run(":" + strconv.Itoa(frame.Config.Server.Port)) // 监听并启动服务
	if err != nil {
		fmt.Println("启动服务器失败:", err.Error())
	}

}
